// import com.alibaba.druid.sql.ast.SQLExpr;
// import com.alibaba.druid.sql.ast.SQLExprImpl;
// import com.alibaba.druid.sql.ast.SQLReplaceable;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor;

// import java.util.ArrayList;
// import java.util.List;
#pragma once
#include <list>
#include "../SQLExprImpl.h"
#include "../SQLReplaceable.h"
class SQLExpr;

class SQLGroupingSetExpr : public SQLExprImpl, virtual public SQLReplaceable
{
public:
  SQLExpr_list_ptr parameters;
  SQLGroupingSetExpr();
  SHAREDOBJECT(SQLGroupingSetExpr);
  virtual SQLObject_ptr clone();

  SQLExpr_list_ptr getParameters();

  void addParameter(SQLExpr_ptr parameter);

  //@Override
  void accept0(SQLASTVisitor_ptr visitor);

  //@Override
  SQLObject_list_ptr getChildren();

  //@Override
  int hashCode();

  //@Override
  bool equals(Object_ptr obj);

  //@Override
  BOOL_ptr replace(SQLExpr_ptr expr, SQLExpr_ptr target);
};
